The present invention relates to a technique which is suitable for a case where a packet limited in arrival deadline is transmitted through a best-effort network.
The invention proposed by the present inventors has aspects of a packet transmission apparatus, a communication system and a program
In recent years, there is increasing an opportunity to transfer multimedia data through a best-effort communication network. In this type of data transfer, a download transmission system or a stream transmission system is used.
As the best-effort communication network, for example, the Internet is famous. Besides, the multimedia data includes, for example, a video file, an audio file, combination data of these, and data including these as part. In the present specification, the multimedia data is used in the meaning of data including time information or information relating to a playout order.
In the case of the download transmission system, a data file is downloaded from a delivery server to a recording area at a receiver, and at the time point when the transfer is completely ended, the playout thereof is started. Accordingly, the download transmission system is unsuitable for the playout of multimedia data in which the playout takes a long time, or for the playout of multimedia data in which real time playout is required.
On the other hand, in the case of the stream transmission system, the playout of a data file is started by only partial data being transferred from a sender to a receiver. Thus, this is used for Internet telephone, remote video conference, vide on demand, network camera, Internet television and other services.
As an Internet technique suitable for the stream transmission system, there is an RTP (Realtime Transport Protocol) system defined in IETF RFC3550. In the data transfer by the RTP system, as time information, a time stamp is added to a packet. By this, the grasp of a time relation becomes possible between the sender and the receiver, and synchronous playout becomes possible without being influenced by delay fluctuation (jitter) or the like at the time of packet transfer.
Here, in the RTP system, data transfer in real time is not guaranteed. Actually, the priority of packet delivery, setting, management and the like do not fall within the scope of the transport service provided by the RTP system. Thus, also in the case of the RTP packet, similarly to other packets, there is a possibility that a delivery delay or packet loss occurs.
Even if such a state occurs, the receiver uses only packets having arrived in an expected time and can reproduce the data.
This is because even if a slight data loss exists in the video data or audio data, the playout can be performed to a certain extent.
Incidentally, a packet which is delay-delivered or a packet in which an error occurs is discarded at the receiver. That is, there is a problem that even if the transmission apparatus delivers high quality data, when the packet loss or error occurs, the playout is not performed at the receiver.
Especially, in the present communication environment, it is said that there is an error of 10−5 even in a wired section, and 10−3 or more in a wireless section. Accordingly, from the viewpoint of quality maintenance, even if the RTP system is singly used for the delivery of the multimedia data, sufficient reliability can not be expected.
Then, it is conceivable to apply a TCP (transmission control protocol) system with high reliability.
However, although the TCP system is resistant to error, its throughput is low, its delay is large, and it is unsuitable for the stream transmission.
Then, as a method of improving the reliability of data transfer by using the RTP system, it is examined to combine an automatic retransmission system (hereinafter referred to also as “ARQ (Auto Repeat reQuest) system”) and a forward error correction coding system (hereinafter referred to also as “FEC (Forward Error Correction) system”).
The ARQ system is a system in which a lost packet is detected by using the sequence number of the RTP packet, and retransmission of the lost packet is requested from the receiver to the sender.
The FEC system is a system in which plural packets are made one FEC block and are redundancy-coded by using Reed-Solomon (RS: Reed-Solomon code) or another error correction code. For example, in the case where an (n,k) RS code is used, n-k redundant packets can be created from k original packets before the redundancy coding. Incidentally, n>k is established. In this case, n packets in total are transmitted from the transmission apparatus. On the other hand, in the reception apparatus, when k packets can be received among the n packets, k original packets can be restored by the RS decoding processing.
However, the ARQ system and the FEC system respectively have problems as described below.
In the ARQ system, in the case of an environment in which an allowable playout delay (interval between packet transmission time and packet playout time) is not sufficiently large with respect to a round trip time (RTT), since a retransmission request processing and a packet retransmission processing can not be completed in a period, the original effect can not be exhibited.
In the FEC system, since the decoding processing can not be performed when even one packet is missing in an FEC block, in order to realize the packet recovery rate equal to that of the ARQ system, it is necessary to transmit more redundant packets than the ARQ retransmission packets, and there is a problem that the congestion of the network is increased. Besides, there is a problem that the transmission rate of original data is unnecessarily reduced.